package view;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.util.TreeMap;
import java.util.TreeSet;

import javax.swing.table.AbstractTableModel;

import model.kwalificatiebeheer.Uitstroomrichting;
import model.kwalificatiebeheer.Werkproces;

public class WerkprocesTableModel extends AbstractTableModel{

	private TreeMap<Uitstroomrichting, TreeSet<Werkproces>> wpList;
	
	public WerkprocesTableModel(TreeMap<Uitstroomrichting, TreeSet<Werkproces>> wpList){
		this.wpList = wpList;
	}
	
	public String getColumnName(int col) {
		ArrayList<Uitstroomrichting> urList = new ArrayList<Uitstroomrichting>(wpList.keySet());
		return urList.get(col).getNaam();
	}
	
	@Override
	public int getColumnCount() {
		return wpList.size();
	}

	@Override
	public int getRowCount() {
		int size = 0;
		for (Map.Entry<Uitstroomrichting, TreeSet<Werkproces>> ktwp : wpList.entrySet()) {
			int temp = ktwp.getValue().size();
			if (temp > size) size = temp;
		}
		return size;
	}

	@Override
	public Object getValueAt(int rowIndex, int columnIndex) {
		ArrayList<Uitstroomrichting> urList = new ArrayList<Uitstroomrichting>(wpList.keySet());
		int ur = urList.get(columnIndex).getId();
		ArrayList<Werkproces> wp = new ArrayList<Werkproces>(wpList.get(new Uitstroomrichting(ur)));
		if(wp.size() > rowIndex) {
			return wp.get(rowIndex).getTitel();
		} else {
			return "";
		}
	}
}